// 角色管理接口
import request from '@/utils/request'
import type { AllRoleData, RoleData, MenuResponseData } from './type'
enum API {
  // 所有角色列表
  ALLROLE_URL = '/admin/acl/role/',
  // 新增角色
  ADDROLE_URL = '/admin/acl/role/save',
  // 修改角色
  UPDATEROLE_URL = '/admin/acl/role/update',
  // 删除角色
  DELROLE_URL = '/admin/acl/role/remove/',
  // 抽屉里的 获取全部权限和菜单
  ALLPERMISSTION_URL = '/admin/acl/permission/toAssign/',
  //给相应的职位分配权限
  SETPERMISTION_URL = '/admin/acl/permission/doAssign/?',
}

// 角色列表接口
// 这里我们还要加一个传递的参数 角色名 用来进行搜索功能 接口标明携带的参数为query
export const reqAllRole = (page: number, limit: number, roleName: string) => {
  return request.get<any, AllRoleData>(
    API.ALLROLE_URL + `${page}/${limit}/?roleName=${roleName}`,
  )
}
// 新增和修改角色接口
export const reqAddOrUpdate = (data: RoleData) => {
  if (data.id) {
    return request.put<any, any>(API.UPDATEROLE_URL, data)
  } else {
    return request.post<any, any>(API.ADDROLE_URL, data)
  }
}
// 删除单个角色
export const reqDelRole = (id: number) => {
  return request.delete<any, any>(API.DELROLE_URL + `${id}`)
}
// 获取全部权限和菜单
export const reqAllMenuList = (roleId: number) => {
  return request.get<any, MenuResponseData>(
    API.ALLPERMISSTION_URL + `${roleId}`,
  )
}
//给相应的职位(角色)下发权限
export const reqSetPermisstion = (roleId: number, permissionId: number[]) => {
  return request.post(
    API.SETPERMISTION_URL + `roleId=${roleId}&permissionId=${permissionId}`,
  )
}
